/*
 This file is part of Subsonic.

 Subsonic is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 Subsonic is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with Subsonic.  If not, see <http://www.gnu.org/licenses/>.

 Copyright 2009 (C) Sindre Mehus
 */
package net.nullsum.audinaut.util;

/**
 * @author Sindre Mehus
 * @version $Id$
 */
public final class Constants {

    // Character encoding used throughout.
    public static final String UTF_8 = "UTF-8";

    public static final String REST_PROTOCOL_VERSION_SUBSONIC = "1.13.0";
    public static final String REST_CLIENT_ID = "Audinaut";
    public static final String LAST_VERSION = "subsonic.version";

    // Names for intent extras.
    public static final String INTENT_EXTRA_NAME_ID = "subsonic.id";
    public static final String INTENT_EXTRA_NAME_NAME = "subsonic.name";
    public static final String INTENT_EXTRA_NAME_DIRECTORY = "subsonic.directory";
    public static final String INTENT_EXTRA_NAME_CHILD_ID = "subsonic.child.id";
    public static final String INTENT_EXTRA_NAME_ARTIST = "subsonic.artist";
    public static final String INTENT_EXTRA_NAME_AUTOPLAY = "subsonic.playall";
    public static final String INTENT_EXTRA_NAME_QUERY = "subsonic.query";
    public static final String INTENT_EXTRA_NAME_PLAYLIST_ID = "subsonic.playlist.id";
    public static final String INTENT_EXTRA_NAME_PLAYLIST_NAME = "subsonic.playlist.name";
    public static final String INTENT_EXTRA_NAME_PLAYLIST_OWNER = "subsonic.playlist.isOwner";
    public static final String INTENT_EXTRA_NAME_ALBUM_LIST_TYPE = "subsonic.albumlisttype";
    public static final String INTENT_EXTRA_NAME_ALBUM_LIST_EXTRA = "subsonic.albumlistextra";
    public static final String INTENT_EXTRA_NAME_ALBUM_LIST_SIZE = "subsonic.albumlistsize";
    public static final String INTENT_EXTRA_NAME_ALBUM_LIST_OFFSET = "subsonic.albumlistoffset";
    public static final String INTENT_EXTRA_NAME_SHUFFLE = "subsonic.shuffle";
    public static final String INTENT_EXTRA_NAME_EXIT = "subsonic.exit";
    public static final String INTENT_EXTRA_NAME_DOWNLOAD = "subsonic.download";
    public static final String INTENT_EXTRA_NAME_DOWNLOAD_VIEW = "subsonic.download_view";
    public static final String INTENT_EXTRA_VIEW_ALBUM = "subsonic.view_album";
    public static final String INTENT_EXTRA_FRAGMENT_TYPE = "fragmentType";
    public static final String INTENT_EXTRA_REFRESH_LISTINGS = "refreshListings";
    public static final String INTENT_EXTRA_SEARCH_SONG = "searchSong";
    public static final String INTENT_EXTRA_TOP_TRACKS = "topTracks";

    // Preferences keys.
    public static final String PREFERENCES_KEY_SERVER_KEY = "server";
    public static final String PREFERENCES_KEY_SERVER_COUNT = "serverCount";
    public static final String PREFERENCES_KEY_SERVER_ADD = "serverAdd";
    public static final String PREFERENCES_KEY_SERVER_REMOVE = "serverRemove";
    public static final String PREFERENCES_KEY_SERVER_INSTANCE = "serverInstanceId";
    public static final String PREFERENCES_KEY_SERVER_NAME = "serverName";
    public static final String PREFERENCES_KEY_SERVER_URL = "serverUrl";
    public static final String PREFERENCES_KEY_SERVER_INTERNAL_URL = "serverInternalUrl";
    public static final String PREFERENCES_KEY_SERVER_LOCAL_NETWORK_SSID = "serverLocalNetworkSSID";
    public static final String PREFERENCES_KEY_TEST_CONNECTION = "serverTestConnection";
    public static final String PREFERENCES_KEY_START_SCAN = "serverStartScan";
    public static final String PREFERENCES_KEY_OPEN_BROWSER = "openBrowser";
    public static final String PREFERENCES_KEY_MUSIC_FOLDER_ID = "musicFolderId";
    public static final String PREFERENCES_KEY_USERNAME = "username";
    public static final String PREFERENCES_KEY_PASSWORD = "password";
    public static final String PREFERENCES_KEY_AUTH_METHOD = "authMethod";
    public static final String PREFERENCES_KEY_THEME = "theme";
    public static final String PREFERENCES_KEY_FULL_SCREEN = "fullScreen";
    public static final String PREFERENCES_KEY_DISPLAY_TRACK = "displayTrack";
    public static final String PREFERENCES_KEY_MAX_BITRATE_WIFI = "maxBitrateWifi";
    public static final String PREFERENCES_KEY_MAX_BITRATE_MOBILE = "maxBitrateMobile";
    public static final String PREFERENCES_KEY_NETWORK_TIMEOUT = "networkTimeout";
    public static final String PREFERENCES_KEY_CACHE_SIZE = "cacheSize";
    public static final String PREFERENCES_KEY_CACHE_LOCATION = "cacheLocation";
    public static final String PREFERENCES_KEY_PRELOAD_COUNT_WIFI = "preloadCountWifi";
    public static final String PREFERENCES_KEY_PRELOAD_COUNT_MOBILE = "preloadCountMobile";
    public static final String PREFERENCES_KEY_HIDE_MEDIA = "hideMedia";
    public static final String PREFERENCES_KEY_MEDIA_BUTTONS = "mediaButtons";
    public static final String PREFERENCES_KEY_SCREEN_LIT_ON_DOWNLOAD = "screenLitOnDownload";
    public static final String PREFERENCES_KEY_REPEAT_MODE = "repeatMode";
    public static final String PREFERENCES_KEY_WIFI_REQUIRED_FOR_DOWNLOAD = "wifiRequiredForDownload";
    public static final String PREFERENCES_KEY_RANDOM_SIZE = "randomSize";
    public static final String PREFERENCES_KEY_OFFLINE = "offline";
    public static final String PREFERENCES_KEY_TEMP_LOSS = "tempLoss";
    public static final String PREFERENCES_KEY_SHUFFLE_START_YEAR = "startYear";
    public static final String PREFERENCES_KEY_SHUFFLE_END_YEAR = "endYear";
    public static final String PREFERENCES_KEY_SHUFFLE_GENRE = "genre";
    public static final String PREFERENCES_EQUALIZER_ON = "equalizerOn";
    public static final String PREFERENCES_EQUALIZER_SETTINGS = "equalizerSettings";
    public static final String PREFERENCES_KEY_PERSISTENT_NOTIFICATION = "persistentNotification";
    public static final String PREFERENCES_KEY_GAPLESS_PLAYBACK = "gaplessPlayback";
    public static final String PREFERENCES_KEY_REMOVE_PLAYED = "removePlayed";
    public static final String PREFERENCES_KEY_KEEP_PLAYED_CNT = "keepPlayedCount";
    public static final String PREFERENCES_KEY_SHUFFLE_MODE = "shuffleMode2";
    public static final String PREFERENCES_KEY_SYNC_ENABLED = "syncEnabled";
    public static final String PREFERENCES_KEY_SYNC_INTERVAL = "syncInterval";
    public static final String PREFERENCES_KEY_SYNC_WIFI = "syncWifi";
    public static final String PREFERENCES_KEY_SYNC_NOTIFICATION = "syncNotification";
    public static final String PREFERENCES_KEY_SYNC_MOST_RECENT = "syncMostRecent";
    public static final String PREFERENCES_KEY_PAUSE_DISCONNECT = "pauseOnDisconnect";
    public static final String PREFERENCES_KEY_HIDE_WIDGET = "hideWidget";
    public static final String PREFERENCES_KEY_CUSTOM_SORT_ENABLED = "customSortEnabled";
    // public static final String PREFERENCES_KEY_PLAY_NOW_AFTER = "playNowAfter";
    public static final String PREFERENCES_KEY_SONG_PRESS_ACTION = "songPressAction";
    public static final String PREFERENCES_KEY_LARGE_ALBUM_ART = "largeAlbumArt";
    public static final String PREFERENCES_KEY_BLURRED_BACKGROUND = "blurredBackground";
    public static final String PREFERENCES_KEY_PLAYLIST_NAME = "suggestedPlaylistName";
    public static final String PREFERENCES_KEY_PLAYLIST_ID = "suggestedPlaylistId";
    public static final String PREFERENCES_KEY_RECENT_COUNT = "mostRecentCount";
    public static final String PREFERENCES_KEY_REPLAY_GAIN = "replayGain";
    public static final String PREFERENCES_KEY_REPLAY_GAIN_BUMP = "replayGainBump2";
    public static final String PREFERENCES_KEY_REPLAY_GAIN_UNTAGGED = "replayGainUntagged2";
    public static final String PREFERENCES_KEY_REPLAY_GAIN_TYPE = "replayGainType";
    public static final String PREFERENCES_KEY_ALBUMS_PER_FOLDER = "albumsPerFolder";
    public static final String PREFERENCES_KEY_FIRST_LEVEL_ARTIST = "firstLevelArtist";
    public static final String PREFERENCES_KEY_START_ON_HEADPHONES = "startOnHeadphones";
    public static final String PREFERENCES_KEY_SHUFFLE_BY_ALBUM = "shuffleByAlbum";
    public static final String PREFERENCES_KEY_BATCH_MODE = "batchMode";

    public static final String CACHE_KEY_IGNORE = "ignoreArticles";
    public static final String CACHE_AUDIO_SESSION_ID = "audioSessionId";
    public static final String CACHE_BLOCK_TOKEN_USE = "blockTokenUse";

    public static final String MAIN_BACK_STACK = "backStackIds";
    public static final String MAIN_BACK_STACK_SIZE = "backStackIdsSize";
    public static final String MAIN_NOW_PLAYING = "nowPlayingId";
    public static final String MAIN_NOW_PLAYING_SECONDARY = "nowPlayingSecondaryId";
    public static final String MAIN_SLIDE_PANEL_STATE = "slidePanelState";
    public static final String FRAGMENT_LIST = "fragmentList";
    public static final String FRAGMENT_LIST2 = "fragmentList2";
    public static final String FRAGMENT_DOWNLOAD_FLIPPER = "fragmentDownloadFlipper";
    public static final String FRAGMENT_NAME = "fragmentName";
    public static final String FRAGMENT_POSITION = "fragmentPosition";

    // Name of the preferences file.
    public static final String PREFERENCES_FILE_NAME = "net.nullsum.audinaut_preferences";

    // Account prefs
    public static final String SYNC_ACCOUNT_NAME = "Subsonic Account";
    public static final String SYNC_ACCOUNT_TYPE = "Audinaut";
    public static final String SYNC_ACCOUNT_PLAYLIST_AUTHORITY = "net.nullsum.audinaut.playlists.provider";

    public static final String TASKER_EXTRA_BUNDLE = "com.twofortyfouram.locale.intent.extra.BUNDLE";

    public static final String ALBUM_ART_FILE = "albumart.jpg";

    private Constants() {
    }
}
